home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
util
/
rexx
/
cdmp.lha
/
cdmp.dok
next >
Wrap
Text File
|
2000-11-25
|
32KB
|
738 lines
Dokumentation zu cdmp.rx v1.2 J.Klingele 18.11.2000
Beschreibung:
-------------
cdmp.rx - Liest mittels 'cdda' Tracks von Audio-CD's, speichert sie auf
Festplatte und erzeugt daraus mittels 'Lame' oder 'Pegase' Files im
mp3-Format (MPEG1 LayerIII bzw. LayerII)
Usage: [rx] cdmp.rx (datenfile)
Autor - Jürgen Klingele - jklingele@gmx.de
Disclaimer:
-----------
Für eventuelle Schäden egal welcher Art die direkt oder indirekt durch den
Gebrauch von cdmp.rx hervorgerufen werden übernimmt der Autor keinerlei
Haftung.
Das Verhalten und die Entwicklung der von Drittherstellern verwendeten oder
erwähnten Software unterliegt nicht der Einflussnahme und Zuständigkeit des
Autors.
Lizenz:
-------
Das Skript und zugehörende Dokumentation sind Freeware und dürfen in
unveränderter Form und nur gemeinsam beliebig weitergegeben werden.
Änderungen und Anpassungen zum privaten Gebrauch sind ausdrücklich
gestattet.
Weitergabe von Skript und Dokumentation in veränderter Form bedürfen der
Genehmigung des Autors.
Voraussetzungen:
----------------
- Die Programme cdda (Michael van Elst) und Lame (© Mark Taylor) oder
Pegase (© Didier Levet) müssen (korrekt) installiert und im DOS-Suchpfad
verfügbar sein.
> getestet wurde mit cdda V1.64, Lame V3.20 und Pegase V1.8f
- CD-Rom und Kontroller die fähig sind Audio-Daten über das IDE oder
SCSI-Interface zu übertragen.
- für einen 4 min. Titel werden ~42MB für das CD-File und je nach mp3
Komprimierung ~2-8 MB für das mp3-File benötigt. Genügend freier Platz
auf einem Laufwerk ist also notwendig.
- designed und getestet wurde das Skript auf einen A4000 mit MKII060/50
Auf Rechnern mit kleineren Prozessoren macht die Erzeugung von mp3 keinen
rechten Sinn, dauert einfach zu lange. (Manche denken das allerdings auch
vom 060er) 8-)
Zum Abspeichern der Audio-files kann es natürlich immer verwendet werden,
sollte dafür Bedarf bestehen.
Ob PPC-User Bedarf für dieses Skript weiss ich nicht, die mp3-Erzeugung
passiert da sowieso in quasi Realtime.
- cdda muss beim Einlesen auf das audio-device und das entsprechende CD-Rom
device zugreifen. Manche Software-CD-Player sperren aber sobald sie
gestartet sind diese Resourcen, also auch dann wenn sie keine Titel
abspielen. Damit ist für 'cdmp' eine Bearbeitung der CD natürlich nicht
möglich.
Abhilfe schafft hier nur den Player zu beenden oder einen anderen zu
verwenden. (->Utilities/SongPlayer)
Installation:
-------------
- irgendwohin kopieren, wo man es wieder findet. Es empfiehlt sich natürlich
das Skript irgendwo im Suchpfad unterzubringen, um sich die Pfadangabe zu
sparen. Das Script-Flag sollte gesetzt sein.
- evtentuell die am Skriptanfang befindlichen Parameter anpassen.
Wichtig dabei sind eigentlich zu Anfang nur
1. die Pfade zum audio-, mp3- und, falls vorhanden, dem
CDID-Verzeichnis.
Standardmässig werden die eingelesen Audiodateien (und die
entsprechenden Datenfiles) in CD-A: und die mp3-Dateien unter MP3:
abgespeichert. CDID-Daten werden in CDID: gesucht.
Also entweder diese ->Parameter im Skript anpassen oder ein
entsprechendes Assign anlegen. (->Utilities/Assignwedge)
> in CDID-Dateien werden die Daten gespeichert die nicht auf der
CD-Rom enthalten sind. Normalerweise sind das Interpret(en),
CD-Titel und die einzelnen Songtitel.
Ich persönlich halte das ID-System in dieser Form für ziemlich
eingeschränkt. Ohne CD sind die gespeicherten Daten relativ nutzlos.
Man hätte wenigstens andere Daten wie Spielzeit Erscheinungsdatum
usw. integrieren können. Da aber nun anscheinend jeder dieses
Minimalsystem akzeptiert und damit arbeitet, tut 'cdmp' das eben
auch. 8-(
2. Anpassen des 'plan' Parameters auf das entsprechende CD-ROM Laufwerk.
Näheres hierzu unter ->Parameter und in der cdda-Anleitung.
3. Ausahl des gewünschten Encoders und anpassen der entsprechenden
Optionen.
Starten:
--------
Gestartet wird über eine Shell oder das Workbenchmenu 'Befehl ausführen'.
Entweder nur mit 'cdmp.rx' oder mit 'cdmp.rx datenfile' wobei 'datenfile'
der Name einer zuvor mit 'cdmp' erzeugten Parameterdatei ist (mehr dazu
weiter unten ->A.4).
Sollte das Script-Flag von 'cdmp.rx' nicht gesetzt sein muss beim Aufruf
jeweils noch 'rx' vorangestellt werden.
Sollte das Skript nicht im Suchpfad zu finden sein muss der komplette pfad
mit eingegeben werden.
Auch der Start über die Workbench mit Icon ist möglich (Projekticon,
Standardprogramm rx). Dabei ist die Übergabe eines Datenfiles aber nicht
möglich.
Bedienung:
----------
Vorab: Das Skript lässt sich jederzeit durch 'Ctrl-C' (und evt. Return wenn
auf Eingaben gewartet wird) abbrechen.
A) Gehen wir es mal der Reihe nach an und stellen uns vor, dass noch nie mit
'cdmp' gearbeitet wurde. Der Ablauf gestaltet sich dann folgendermassen:
1. CD einlegen und 'cdmp.rx' starten.
'cdmp' liest jetzt mit Hilfe von 'cdda' das Inhaltsverzeichnis der
eingelegten CD ein und zeigt eine Übersicht an. Sollte eine CDID-Datei
zu dieser CD vorhanden sein, wird in der Übersicht Interpret, CD-Titel
und die einzelnen Songtitel mit Spieldauer dargestellt. Existiert keine
CDID werden nur Titelnummer und Titellänge angezeigt.
Wenn beim Einlesen ein Fehler auftritt, wird 'cdmp' nach entsprechender
Fehlermeldung beendet. Dies kann passieren weil z.B. keine, oder eine
Daten-CD im Laufwerk liegt, oder audio.device bzw. CD-ROM von anderen
Programmen blockiert wird.
> damit 'cdda' richtig funktioniert müssen die env: Variablen
CDDA-UNIT und CDDA-DEVICE von 'cdda' natürlich korrekt gesetzt sein.
2. jetzt können die gewünschten Titel durch Angabe der Titelnummern einzeln
eingegeben werden. Die Reihenfolge ist dabei beliebig. Es erfolgt eine
Kontrolle auf Doppeleingaben und Überschreitung der Gesamttitelzahl.
'Return' ohne Eingabe einer Titelnummer beendet diese Abfrage.
Durch Eingabe von 'b' (immer ohne ' natürlich) wird der jeweils letzte
eingegebene Titel wieder gelöscht.
> jedesmal wenn 'cdmp' etwas wissen will stehen hinter dem Fragetext in
Klammern die möglichen Eingaben. Grossgeschriebene Texte zeigen dabei
die Default-Antwort an. Etwa bedeutet (j/N) das nur die Eingabe von
'j' auch Ja bedeutet. Alles andere wird als Nein interpretiert. Bei
der Eingabe selbst ist Gross- oder Kleinschreibung egal. Alle diese
Eingaben werden sowieso als Grossbuchstaben ausgewertet.
> nach jedem eingegebenen Titel wird der insgesamt benötigte Platz auf
der Festplatte angezeigt. Dies bezieht sich nur auf die Audio-files,
die Grösse der mp3-files wird hier nicht berücksichtigt. Es handelt
sich auch nur um einen circa-Wert. Also bitte die Platte nicht auf's
letzte MegaByte ausreizen.
Sollte der angezeigte Wert, warum auch immer, überhaupt nicht
stimmen kann der Faktor der zum Errechnen der Dateigrösse benutzt
wird in den ->Parametern angepasst werden.
> es gibt hier noch eine andere 'versteckte' Eingabemöglichkeit. Aber
mehr dazu später im Kapitel ->Leadout.
3. Jetzt erfolgt eine Abfrage ob auch die entsprechenden mp3-Files erzeugt
werden sollen.
- Wer das nicht nicht will, weil er nur die Audiodaten benötigt oder
manuell weiterarbeiten möchte, gibt hier 'n' ein.
Dann werden später nur die entsprechenden Audio-files auf die Platte
kopiert. Der benutzte Dateiname entspricht dabei bei CD's mit CDID
dem Titel (der zuvor eventuell an die DOS-Spielregeln angepasst wurde),
bei CD's ohne CDID wird die Titelnummer verwendet, d.h. Titel1, Titel2.
> Achtung, bei Titeln ohne CDID-Namen werden die Audio-Dateien beim
Bearbeiten der nächsten CD ohne CDID wegen gleicher Namen wieder
überschrieben. Wenn sie also weiter gebraucht werden, muss man sie
manuell umbenennen oder in ein anderes Verzeichnis verschieben.
- Wer mp3-Dateien erzeugen will, gibt hier logischerweise 'j' ein.
Bei CD's mit vorhandener CDID-Datei wird der mp3-Name automatisch aus
dem Songtitel generiert.
Bei CD' ohne CDID müssen nun die entsprechenden Dateinnamen ohne
Extension eingegeben werden. Die Abfrage erfolgt für jeden der zuvor
eingegebenen Titel einzeln in derselben Reihenfolge.
Hierbei wird die Gross/Kleinschreibung so übernommen wie der Name
eingegeben wird.
Sinn macht es auch hier als Dateinamen die Liedtitel zu benutzen.
Als Default-Dateiname ist wieder die Titelnummer voreingetragen. Als
Extension wird standardmässig '.mp3' benutzt. Dies ergibt die Namen:
Titel1.mp3, Titel2.mp3 usw.
> Diese abgespeicherten Audio-Dateien werden normalerweise nach
Erzeugen der mp3-files wieder gelöscht. Sollen die Audio-files
erhalten bleiben, kann man das in den ->Parametern abschalten.
> 'cdmp' verwendet die (Standard-)Extension '.mp3'. Ich halte dies
für sinnvoller als das auch verwendete '.mpg' um Verwechslungen mit
Videos im MPEG-Format, die dieselbe Kennzeichnung verwenden, zu
verhindern.
Wer aber '.mpg' oder etwas anderes benutzen möchte/muss, kann die
Extension natürlich in den ->Parametern umstellen.
> Es ist es möglich die Namen mit Leerzeichen einzugeben. Bei der
späteren Arbeit mit diesen Titel ohne 'cdmp' können die Leerzeichen
in den Dateinamen aber recht störend wirken, da immer Anführungs-
zeichen um Pfad und Name nötig sind. Daher werden Leerzeichen bei
der Eingabe standardmässig durch Unterstriche ersetzt. z.B.: Aus
'Dies ist ein Titel' wird 'Dies_ist_ein_Titel'.
Wer das nicht möchte und auf den Leerzeichen besteht, kann das in
den ->Parametern abschalten, so dass die eingegebenen Namen
unverändert benutzt werden (sofern möglich s.u.).
> Desweiteren werden auch alle Zeichen die mit den Namensregeln des
Amiga-Dos kollidieren durch Unterstriche ersetzt. Diese Zeichen sind
~%#?<>|()[]":
> Die maximale Länge des mp3-Namens ist abhängig vom verwendeten
Filesystem und dem entsprechenden ->Parameter max_name_len
Ist der Name länger als max_name_len abzüglich der Länge der
Extension, wird der eingegebene Name automatisch gekürzt.
> wird der Name aus obigen Gründen geändert so wird der angepasste
Dateiname mit entsprechender Meldung nochmal angezeigt.
> es ist hier auch möglich dem eigentlichen Dateinamen noch eine
zusätzliche Pfadangabe voranzustellen. Dieser Pfad wird aber immer
unterhalb des MP3-Verzeichnisses eingefügt, darf also kein Laufwerk
sein und keinen führenden Schrägstrich enthalten. Die zusätzliche
Pfadangabe und der Dateiname werden wie ein Dateiname behandelt und
dürfen deshalb auch nicht länger wie die maximale Dateinamenlänge
sein. Achtung, das angegebene Verzeichnis MUSS auch existieren sonst
verweigert lame die Arbeit.
Als Eingaben erlaubt sind z.B.:
Ein_Titel wird zu MP3:Ein_Titel.mp3
noch ein titel wird zu MP3:noch_ein_titel.mp3
test/titel.test~1 wird zu MP3:test/titel.test_1.mp3
nicht erlaubt sind:
ein-titel/
/ein_titel
test:titel
(Standardparameter vorausgesetzt)
4. weiter geht's mit der Frage ob mit der Arbeit gleich begonnen wird,
oder die Daten zur späteren Nutzung abgespeichert werden sollen.
- Wird diese Frage mit 'g' beantwortet beginnt die eigentliche Arbeit
von 'cdmp'. Ab jetzt werden vom Anwender keine Eingaben mehr verlangt.
Wer will kann sich jetzt mit einer Kanne Kaffee zurücklehnen und die
nächsten Stunden der Arbeit von 'cdmp' zuschauen. ;-)
> zuerst werden mit Hilfe von 'cdda' sämtliche Audio-files auf
Festplatte kopiert. Sobald dies abgeschlossen ist, werden CD und
CD-laufwerk nicht mehr benötigt und können wieder andersweitig
verwendet werden. Hierzu erfolgt eine entsprechende Meldung.
- wurde die Frage zur mp3-Erzeugung mit Nein beantwortet beendet
sich 'cdmp' hier nach dem Speichern der Audiodateien.
> Als nächstes erfolgt die Erzeugung der mp3-files. Der Parameterstring
der 'Lame' oder 'Pegase' steuert, bzw. der Mode mit dem die
mp3-Dateien erzeugt werden, wird über ->Parameter festgelegt.
Standardmässig werden mp3-files mit fester Bitrate von 160kbs
erzeugt. (Dies dauert auf dem 68060 immer noch um eine Stunde.
Variable Bitraten erzeugen zwar kürzere (und vielleicht bessere)
Files, brauchen aber auch einiges (ca. 3x) länger. Kleinere Bitraten
sind m.E., ausser zum Testen, aufgrund der zum Teil schlechten
Qualität nicht empfehlenswert. (Aber das kann jeder halten wie er
will.)
Wie erwähnt wird jeweils nachdem das mp3-file erzeugt wurde, die
entsprechende Audio-datei gelöscht. Dies lässt sich über
->Parameter unterbinden so dass diese Datei erhalten bleibt.
Sobald alle mp3-Dateien erzeugt wurden, wird 'cdmp' beendet.
- lautet die Antwort 's' wird als nächstes ein Dateiname abgefragt unter
dem die, bis jetzt gemachten, Angaben, im Verzeichnis der Audio-Dateien
abgespeichert werden. Auch diesmal erfolgt eine Kontrolle des Namens
auf DOS-Konformität. Dieser Name wird bei vorhandener CDID mit dem
CD-Titel bzw. ohne CDID mit einem einstellbaren (-> Parameter)
Defaultnamen vorbelegt und braucht ggf. nur noch bestätigt zu werden.
Nach dem Abspeichern der Daten wird 'cdmp' beendet.
> Vielleicht fragt sich jetzt jemand wozu man das Ganze. Wie erwähnt
dauert das Erzeugen der mp3's mit einem 68060 ziemlich lange. Wenn
der Rechner in einer halben Stunde sowieso abschaltet wird, macht es
keinen Sinn die Bearbeitung gleich zu starten, zumal die Bearbeitung
unterbrochener mp3-files leider nicht fortgesetzt werden kann.
Man kann aber alles soweit vorbereiten und die Daten abspeichern
lassen. Bei der nächsten Gelegenheit kann dieses Datenfile dann als
Parameter beim Programmstart übergeben und abgearbeitet werden.
Natürlich können auch, während 'cdmp' an den mp3-files einer CD
arbeitet, bereits die nächste(n) CD('s) vorbereitet werden.
B. Somit kommen wir zur zweiten Möglichkeit 'cdmp' zu starten, nämlich mit
Übergabe eines Dateinamens. (s.o.->Starten). Richtig, dieser Dateiname ist
genau der Name der bei der Auswahl zur späteren Bearbeitung unter ->A.4
angegeben wurde.
1. 'cdmp' mit Angabe eines 'cdmp'-Datenfiles starten. > cdmp.rx datenfile
Wenn die Datei existiert liest 'cdmp' das angegebene Datenfile ein und
zeigt die enthaltenen Daten an. Existiert die Datei nicht, wird ganz
normal weitergemacht als wäre 'cdmp' ohne Parameter gestartet worden
->A.1.
2. Anschliessend erfolgt die Abfrage ob mit diesen Daten weitergearbeitet
werden soll.
- Hat man sich mit 'n' dagegen entschieden wird auch ganz normal
weitergemacht als wäre 'cdmp' ohne Parameter gestartet worden ->A.1.
- bei 'j' .... ähh ja richtig, da geht's....
3. ....hier weiter.
'cdmp' überprüft jetzt ob die richtige CD eingelegt ist. Sollte das
nicht der Fall sein fordert 'cdmp' zum Einlegen der entsprechenden CD
auf.
Nach Bestätigen der Meldung mittels Returntaste geht's entweder weiter
(bei richtiger CD), oder das Spiel wiederholt sich solange bis die
komplette CD-Sammlung durchprobiert wurde.
> muss ich das erklären? Nein, es sollte klar sein, dass nichts
vernünftiges dabei rauskommt, wenn ich ein Datenfile von einer
Bon Jovi-CD erzeuge und beim Bearbeiten eine Aminet-CD im Laufwerk
liegt.
Anschliessend startet 'cdmp' durch und erzeugt dann ohne weitere
Unterbrechung die Audio- und falls gewünscht die mp3-files.
Sobald das Datenfile bearbeitet ist, wird 'cdmp' beendet.
C. Eine dritter und vorerst letzter Modi in dem 'cdmp' starten kann, ist der
sogenannte 'Recovery-mode'. Gerüchten zufolge soll ja auch der Amiga von
Zeit zu Zeit und völlig unerwartet, der reallen Welt entsagen, alles was
einem wichtig ist wegschmeissen und nach Indien verreisen.
Andere Rechner stürzen da nur ab. Sagt selbst, ist doch billig, oder. ;-)
Jedenfalls erkennt 'cdmp' automatisch ob eine zuvor gestartete
Bearbeitung, aus welchem Grund auch immer, abgebrochen wurde. Grundlage
dafür ist die Datei 'titelliste' im Verzeichnis der Audio-Dateien. In
dieser Datei wird von 'cdmp' vermerkt welche Titel noch abzuarbeiten
sind. (->Utilities/Disksafe)
1. Findet 'cdmp' beim starten ohne Übergabe eines Datenfiles, die Datei
'titelliste' vor, wird automatisch davon ausgegangen das zuvor eine
Bearbeitung unterbrochen wurde. 'cdmp' lädt dann den Inhalt dieser
Datei, zeigt ihn an und bietet die Möglichkeit ab dem abgebrochenen
Titel weiterzuarbeiten.
Der weitere Ablauf erfolgt dann wie unter B.2 ff beschrieben.
> 2 Dinge sind hierbei wichtig.
a. Will man während 'cdmp' gerade eine CD bearbeitet in einer anderen
Shell 'cdmp' nochmal starten, um z.B. die nächste CD vorzubereiten,
findet das neu gestartete Skript die 'titelliste' des gerade
aktiven Programms und schaltet jetzt fälschlicherweise in den
'recovery'-Modus.
Die folgende Abfrage ob mit diesen Daten weitergearbeitet
werden soll MUSS in diesem Fall mit 'n' beantwortet werden. 'cdmp'
ignoriert dann diese Datei und arbeitet normal weiter.
Nicht besonders elegant, ich weiss. Wird sicher irgendwann
geändert, sobald ich a. Zeit und b. eine Idee habe, wie ich das
narrensicher umgehen kann.
> Das gleichzeitige Bearbeiten mehrerer mp3-files mit 'cdmp' macht
zumindest auf einem 060 absolut keinen Sinn. Die Bearbeitungszeiten
werden astronomisch. Daher greifen alle gestarteten 'cdmp's auf
die selben Files zu (Audio,titeliste usw.). Aktiv verändert
werden diese Dateien ja sowieso nur vom arbeitenden Skript.
Es ist also nicht so das man es nicht hätte anders machen
können, sondern das es einfach unnötig ist getrennte Parameter
zu verwalten.
b. 'titelliste' wird jedesmal überschrieben wenn 'cdmp' in den aktiven
Mode kommt, sprich sobald damit begonnen wird die Audiofiles
abzuspeichern. Daher muss ein Recovery unmittelbar nach dem Abbruch
erfolgen. Es ist also nicht möglich eine Bearbeitung abzubrechen, eine
andere CD zu bearbeiten und anschliessend die abgebrochene Sitzung an
der Stelle, an der sie unterbrochen wurde, weiterzuführen. Ausnahme:
Die reine Erzeugung eines Datenfiles verändert 'titelliste' nicht.
Leadout:
--------
Kommen wir zu einem weiteren 'Gimmick' von 'cdmp'. Am Ende nahezu aller
Songs ist eine mehr oder weniger lange Pause. Ob diese Pause ausser der
akustischen Trennung einen weiteren Grund hat weiss ich nicht, auf alle
Fälle lässt sich damit wunderbar die Spielzeit einer CD strecken.
Für mp3-Files ist sie meines Erachtens nach völlig überflüssig. 'cdmp'
erlaubt daher ein beliebig langes Stück vom Ende eines Titels abzuschneiden.
Standardmässig werden etwa 2 Sekunden abgezogen. Dieser Standardwert lässt
sich über ->Parameter anpassen.
Wem die 2s zu lange oder zu kurz sind kann bei der Eingabe der Titelnummer
einen eigenen, nur für diesen einen Titel gültigen, Wert eingeben. (daher
oben der Hinweis auf die 'versteckte' Eingabemöglichkeit)
Die Eingabe des Titel erfolgt dann in folgendem Format:
-Abzug(in Sekunden) Titel
Der Abzug kann dabei im Bereich von 0 für keinen Abzug bis beinahe zur max.
Spielzeit des Titels liegen. 1 Block des Titels wird immer eingelesen, was
etwa 13 Tausendstel Sekunden entspricht. (so sinnvoll das auch sein mag)
Wichtig dabei ist das '-' am Anfang der Eingabe und das Leerzeichen zwischen
Abzug und Titel. Der Abzug selber kann als ganze Zahl, als Kommazahl oder
mit Punkt eingegeben werden.
Der Wert wird immer auf den nächsten ganzen Block gerundet. (also innerhalb
von ca. 0,02s. Nein, ich hab's nicht nachgemessen)
Bsp.: -3 4 = Titel 4 mit 3s Abzug
-4,6 7 = Titel 7 mit 4,6s Abzug
-0.5 12 = Titel 12 mit 0,5s Abzug
Fehlerbehandlung:
-----------------
Ich habe ausser bei den Eingaben und dem Prüfen der CD, weitgehend auf eine
Fehlerbehandlung verzichtet.
Erstens wollte ich das Skript nicht unnötig verkomplizieren und aufblähen
und zweitens kann eigentlich nicht allzuviel schiefgehen.
Zu allgemeinen Fehlern, seien es Installationsfehler der benötigten Programme
oder ein Disk full, gibt's von den beteiligten Programmen eh schon eine
Fehlermeldung, da brauche ich nicht auch noch so was wie 'Es ist ein Fehler
aufgetreten. Das Skript wird abgebrochen!' zu bringen.
Zudem bietet der Recovery-Mode ja meist die Möglichkeit die unterbrochene
Arbeit weiterzuführen.
Der einzige 'Fehler' der wirklich öfter auftreten kann ist ein blockiertes
Device, so dass 'cdda' das Inhaltsverzeichnis der CD nicht einlesen kann.
Und da in diesem Fall keine Titel ausgewählt werden können wird 'cdmp'
gleich wieder beendet.
Utilites:
---------
An dieser Stelle erlaube ich mir auf ein paar Hilfsprogrämmchen hinzuweisen
deren Unterstützung ich mittlerweile nicht mehr missen will und die im
Hinblick auf die Arbeit mit 'cdmp', dem einen oder anderen mal einen Blick
wert sein könnten.
Das soll nun nicht heissen dass es nicht noch andere Programme gibt die
Gleiches oder Ähnliches können (vielleicht sogar besser). Es sind aber die
Programme die ich nutze und bei denen ich auf meinem System keinerlei
Probleme in der Zusammenarbeit mit anderen Programmen feststellen konnte.
Alle Rechte an den Programmen liegen natürlich nach wie vor bei den
jeweiligen Autoren.
Assignwedge: © Olaf Barthel - ermöglicht beim Auftreten unbekannter Assigns
bequem per Requester auszuwählen was geschehen soll. (zuweisen,
abbrechen usw.)
Disksafe: © Thomas Richter - beendet recht zuverlässig (zumindestens bei
mir) Schreibzugriffe vor einem (Software)Reset und verhindert
so meistens das Partitionen nicht validiert oder Dateien
komplett zerstört sind.
SongPlayer: © Stéphane Tavenard - spielt so ziemlich alles was irgendwie
Krach macht (auch mp3 wenn die mpega.library installiert ist),
und blockiert vor allem audio.device und CD-Rom nur dann wenn
er auch einen Titel abspielt.
Parameter:
----------
Kommen wir zur Zusammenfassung der Parameter. Diese befinden sich alle
am Skriptanfang und können mit jedem beliebigen Texteditor der ASCII-Dateien
erzeugen kann, angepasst werden. Textverarbeitungen sind normallerweise nicht
geeignet da sie den Text auf die Papiergrösse umbrechen und dadurch den
Programmcode zerstören.
Am Zeilenanfang steht immer der Parametername der NICHT verändert werden darf.
Hinter dem Gleichheitszeichen steht dann der aktuelle Parameterwert. Richtig,
dieser darf,kann,sollte verändert werden.
Wichtig dabei ist: Wo Anführungszeichen dran sind, müssen sie auch dran bleiben.
(und nicht das jetzt ein Schlaumeier die Parameter hier ändert. Die müssen
natürlich in cdmp.rx geändert werden.) #-)
/******* Globale Parameter Variablen *******/
titelpfad = "CD-A:"
> Pfad zum speichern der tracks und sonstiger datenfiles, MUSS mit : oder /
enden.
Hier werden alle Audio-files, die abgespeicherten Datenfiles und die
'titelliste' abgelegt.
mp3pfad = "MP3:"
> Pfad zum speichern der mp3-files, MUSS mit : oder / enden.
Hier werden die erzeugten mp3-files abgelegt.
cdid_dir = "CDID:"
> Pfad zu den CDID's
Das Verzeichnis in dem die CDID-Dateien gesucht werden. Auch diese
Pfadangabe MUSS mit : oder / enden. Sollte man nicht im Besitz von
CDID-Dateien sein, diesen Parameter irgendeinem beliebigen Verzeichnis
zuweisen (am sinnvollsten RAM:).
titellist = "titelliste"
> Dateiname zum abspeichern der eingegeben Titel, wird für Restore benutzt.
Nach Möglichkeit sollte der Name so bleiben, aber wer unbedingt will kann
ihn ändern. Diese Dokumentation geht natürlich von 'titelliste' aus.
cdlist = "ram:cdliste"
> Dateiname der Titelliste von cdda, wird nur temporär zum einlesen
verwendet.
Diese Datei wird mit 'cdda' beim Einlesen der CD erzeugt und enthält deren
Inhaltsverzeichnis. Es ist prinzipiell egal wo sie gespeichert wird und
wie sie heisst. Sobald 'cdmp' das Inhaltsverzeichnis anzeigt wird sie
nicht mehr benötigt und daher gelöscht.
mp_ext = ".mp3"
> Extension für mp3-Dateien
Die Extension die an alle erzeugten mp3-Files angehängt wird. Der Punkt
sollte bleiben (sonst ist es ja keine Extension ;-) ). Die länge der
Extension ist prinzipiell egal, darf aber natürlich nicht länger als
max_name_len - 1 sein. Eine Kontrolle findet aber nicht statt.
cdsave = "CDsave"
> Default Name der für spätere Bearbeitung abgespeicherten 'Arbeitspläne'
Dieser Name wird nur bei CD's ohne CDID verwendet wenn vom Anwender bei der
Abfrage kein Name eingegeben wird.
plan = "e"
> cdda-Modus e=atapi
Dieser Parameter legt den Modus fest mit dem 'cdda' auf das CD-Laufwerk
zugreift und MUSS richtig eingegeben sein. Dies muss man eventuell
ausprobieren indem man in einer Shell den Befehl 'cdda plan=(a,b,c,d,e,f)
list' eingibt. Natürlich immer nur einen Plan Parameter nach dem anderen.
Solange bis keine Fehlermeldung mehr auftritt und cdda das
Inhaltsverzeichnis der CD auflistet.
Auszug aus der 'cdda'-Anleitung:
> 'a' is for Sony CDU 8003 and compatible
> 'b' is for Toshiba XM3401TA and compatible
> 'c' is for NEC 2X and 3X
> 'd' is for some Grundig CD-ROMs, may work on Toshiba drives
> 'e' is for ATAPI (standard command)
> 'f' is for ATAPI (pre-standard command, never seen such a drive)
list_win = 0
> CD-Inhaltsverzeichnis in einem eigenen Fenster anzeigen? 0=nein 1=ja
Standardmässig wird das eingelesene CD-Inhaltsverzeichnis in dem Shell-Fenster
dargestellt in dem auch alle anderen Ein-Ausgaben angezeigt werden. Dies hat
den Nachteil das diese Anzeige jedesmal bei neuem Text eine Zeile nach oben
geschoben wird und irgendwann aus dem Anzeigebereich des Fensters rutscht.
Wird dieser Parameter auf 1 gesetzt wird das Inhaltsverzeichnis in einem
eigenen, der Grösse des Verzeichnisses angepassten, Fenster angezeigt.
Ein kleines Problem gibt es dabei. Durch das Öffnen des neuen Fensters wird
dieses als Standardeingabefensters aktiviert, dadurch muss zur Eingabe der
Titel erst wieder das alte Fenster angeklickt werden, da ansonsten sie
Eingaben im falschen Fenster landen. Ausprobieren was einem besser gefällt.
lw_xs = 150
> linke obere Ecke des CD-Inhaltsverzeichnis Fensters
Horizontale (x) Startposition in Pixeln
lw_ys = 10
> linke obere Ecke des CD-Inhaltsverzeichnis Fensters,
Vertikale (y) Startposition in Pixeln
lw_fw = 9
> Breite des verwendeten Shell Fonts +1 (topaz 8=9, 11=9)
Mit diesem und dem folgenden Parameter werden Breite und Höhe des
Inhaltsfensters abhängig von der Zeilenlänge und der Titelanzahl berechnet.
Die Werte sind dabei nicht allzu kritisch und sollten einfach so eingegeben
werden, dass das Inhaltsverzeichnis komplett, ohne getrennte Zeilen
dargestellt werden kann ohne das der ganze Bildschirm zugepflastert ist.
Bei Proportionalfonts kann es trotzdem mal vorkommen dass das Fenster nicht
passt. Aber man kann es ja manuell grösser ziehen.
lw_fh = 12
> Höhe des verwendeten Shell Fonts +1 (topaz 8=9, 11=12)
s.o.
encoder = "lame"
> gewünschter encoder, "lame" oder "pegase"
Bitte den Namen des zu verwendenden Encoders eingeben. ACHTUNG, in
KLEINBUCHSTABEN.
Bitte auch an den entsprechenden Optionsparamter denken.
Dies ist nicht der Programmname, diese müssen auf alle Fälle 'lame' bzw.
'pegase' lauten. (Wobei die Schreibweise hier egal ist)
lameopt = "-b 160"
> Parameteroptionen für lame.
Dies ist der optionstring der an Lame übergeben wird und festlegt in
welchem Mode die mp3-files erzeugt werden. Genaueres hierzu falls nötig
bitte in der lame-Anleitung nachlesen. Das ist doch zu umfangreich um es
hier nochmals darzustellen.
pegaseopt = "LAYER 2 BITRATE 160"
> Parameteroptionen für Pegase
Dies ist der optionstring der an Pegase übergeben wird und festlegt in
welchem Mode die mp3-files erzeugt werden. Auch hierzu falls nötig
bitte in der Pegase-Anleitung nachlesen.
lame_ppc = 0
> PPC-Version von Lame im Einsatz? 0=nein 1=ja
Ist klar, oder? 68k Anwender lassen 0 stehen, PPC Anwender geben 1 ein (es
sei denn sie wollen mal lachen) ;-)
ppc_stack = 200000
> Stackwert für PPC-Lame
Da die PPC Version von Lame, im Gegensatz zur 68k Version, die Grösse des
Stack nicht ändern kann, aber recht üppig davon braucht, kann ein
entsprechender Wert hier eingeben werden. Die 200000 Byte sollten aber
eigentlich ausreichen. Wenn Lame trotzdem abstürzt kann man testen ob's mit
mehr Stackspeicher läuft.
debug = 0
> Debugmode und -anzeige 0=nein 1=ja.
Ist für den Anwender eigentlich uninteressant. Im Debugmode wird die
Erzeugung von Audio und mp3 files nur simuliert und zusätzliche
Kontrollmeldungen ausgegeben
del_titel = 1
> CD-Titel nach Konvertierung löschen 0=nein 1=ja.
Hiermit wird festgelegt ob die abgespeicherten Audiofiles nach dem Erzeugen
der mp3-Dateien gelöscht werden oder ob sie auf der Festplatte gespeichert
bleiben.
bpb = 2352
> Bytes per Block
Über diesen Wert errechnet sich 'cdmp' aus der Blockanzahl die ungefähre
Dateilänge. Wenn der angezeigte Wert so gar nicht stimmt kann man diesen
Faktor nach der Formel Festplatten-Dateigrösse (in Byte) / Blockanzahl
anpassen. Die Blockanzahl ist die Anzahl der benutzten CD-Blocks, und die
erhält man entweder im Debug-Mode oder mit 'cdda plan=(siehe oben) list'.
Man beachte bitte, der angezeigte Wert ist in MB = Megabyte also 1024*1024
Byte. 40MB sind also 41943040 Bytes.
skip_lo = 150
> Anzahl der Blocks die vom Leadout abgezogen werden. 1s ca. 75 Blocks (150
sind also 2s).
Dies sind die angesprochenen 2 Sekunden die vom Leadout jedes Titels
automatisch abgezogen werden. (wenn kein anderer Abzug eingegeben wird.)
1 Block hat wie erwähnt die Länge von ca. 13,3 Tausendstel Sekunden.
1 Sekunde sind also etwa 75 Blocks
repl_spc = 1
> Bei Eingabe der CD-Titelnamen Leerzeichen durch '_' ersetzen 0=nein 1=ja.
Hiermit wird entschieden ob in den eingegebenen Dateinamen die Leerzeichen
duch Unterstriche ersetzt werden sollen.
max_name_len = 30
> max. Dateinamenlänge ffs=30 Zeichen
Und hier wird die maximale Dateinamenlänge festgelegt. Dies ist vom
verwendeten Filesystem abhängig. Bei dem von mir verwendeten
FastFileSystem sind es 30 Zeichen.
dirty_char = '~%#?<>|()[]":'
> ungültige Zeichen die bei der Namenseingabe ersetzt werden müssen.
Dies sind die (mir bekannten) Zeichen die bei Dateinamen des Amigas nicht
verwendet werden dürfen und durch Unterstrich ersetzt werden. Wenn ich
mich geirrt habe, Zeichen vergessen wurden, sich das alles irgendwann
ändert oder falls einfach irgendjemand einen Buchstaben besonders hasst,
kann das Zeichen hier ergänzt oder entfernt werden. Da das
Anführungszeichen auch zu den unerlaubten Zeichen gehört, werden diesmal
die Zeichen mit '' begrenzt!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++